<div class="refentry" lang="en" xml:lang="en"><a id="glEnable"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glEnable — enable or disable server-side GL capabilities</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><p><code class="funcdef">void <b class="fsfunc">glEnable</b>(</code>GLenum <var class="pdparam">cap</var><code>)</code>;</p></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>
                    Specifies a symbolic constant indicating a GL capability.
                </p></dd></dl></div></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><p><code class="funcdef">void <b class="fsfunc">glDisable</b>(</code>GLenum <var class="pdparam">cap</var><code>)</code>;</p></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters2"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>
                    Specifies a symbolic constant indicating a GL capability.
                </p></dd></dl></div></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><p><code class="funcdef">void <b class="fsfunc">glEnablei</b>(</code>GLenum <var class="pdparam">cap</var>, GLuint <var class="pdparam">index</var><code>)</code>;</p></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters3"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>
                    Specifies a symbolic constant indicating a GL capability.
                </p></dd><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>
                    Specifies the index of the swtich to enable.
                </p></dd></dl></div></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><p><code class="funcdef">void <b class="fsfunc">glDisablei</b>(</code>GLenum <var class="pdparam">cap</var>, GLuint <var class="pdparam">index</var><code>)</code>;</p></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="parameters4"></a><h2>Parameters</h2><div class="variablelist"><dl><dt><span class="term"><em class="parameter"><code>cap</code></em></span></dt><dd><p>
                    Specifies a symbolic constant indicating a GL capability.
                </p></dd><dt><span class="term"><em class="parameter"><code>index</code></em></span></dt><dd><p>
                    Specifies the index of the swtich to disable.
                </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="description"></a><h2>Description</h2><p>
            <code class="function">glEnable</code> and <a href="glDisable"><span class="citerefentry"><span class="refentrytitle">glDisable</span></span></a> enable and disable various capabilities.
            Use <a href="glIsEnabled"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a> or <a href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a> to determine the current setting
            of any capability. The initial value for each capability with the
            exception of <code class="constant">GL_DITHER</code> and <code class="constant">GL_MULTISAMPLE</code> is
            <code class="constant">GL_FALSE</code>. The initial value for
            <code class="constant">GL_DITHER</code> and <code class="constant">GL_MULTISAMPLE</code> is <code class="constant">GL_TRUE</code>.
        </p><p>
            Both <code class="function">glEnable</code> and <a href="glDisable"><span class="citerefentry"><span class="refentrytitle">glDisable</span></span></a> take a single argument, <em class="parameter"><code>cap</code></em>,
            which can assume one of the following values:
        </p><p>
            Some of the GL's capabilities are indicated. <code class="function">glEnablei</code> and <code class="function">glDisablei</code> enable and disable
            indexed capabilities.
        </p><div class="variablelist"><dl><dt><span class="term"><code class="constant">GL_BLEND</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        blend the computed fragment color values with the values in the color
                        buffers. See <a href="glBlendFunc"><span class="citerefentry"><span class="refentrytitle">glBlendFunc</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_CLIP_DISTANCE</code><span class="emphasis"><em>i</em></span></span></dt><dd><p>
                </p><p>
                        If enabled, clip geometry against user-defined half space <span class="emphasis"><em>i</em></span>.
                    </p></dd><dt><span class="term"><code class="constant">GL_COLOR_LOGIC_OP</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        apply the currently selected logical operation to the computed fragment
                        color and color buffer values. See <a href="glLogicOp"><span class="citerefentry"><span class="refentrytitle">glLogicOp</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_CULL_FACE</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        cull polygons based on their winding in window coordinates.
                        See <a href="glCullFace"><span class="citerefentry"><span class="refentrytitle">glCullFace</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_DEPTH_CLAMP</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        the

                        <math overflow="scroll">
                            <mo>-</mo><msub><mi>w</mi><mi>c</mi></msub><mo>≤</mo><msub><mi>z</mi><mi>c</mi></msub><mo>≤</mo><msub><mi>w</mi><mi>c</mi></msub>
                        </math>
                        plane equation is ignored by view volume clipping (effectively, there is no near or
                        far plane clipping).
                        See <a href="glDepthRange"><span class="citerefentry"><span class="refentrytitle">glDepthRange</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_DEPTH_TEST</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        do depth comparisons and update the depth buffer. Note that even if
                        the depth buffer exists and the depth mask is non-zero, the
                        depth buffer is not updated if the depth test is disabled. See
                        <a href="glDepthFunc"><span class="citerefentry"><span class="refentrytitle">glDepthFunc</span></span></a> and
                        <a href="glDepthRange"><span class="citerefentry"><span class="refentrytitle">glDepthRange</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_DITHER</code>    </span></dt><dd><p>
                </p><p>
                        If enabled,
                        dither color components or indices before they are written to the
                        color buffer.
                    </p></dd><dt><span class="term"><code class="constant">GL_FRAMEBUFFER_SRGB</code>    </span></dt><dd><p>
                </p><p>
                        If enabled
                        and the value of <code class="constant">GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING</code> for the
                        framebuffer attachment corresponding to the destination buffer is <code class="constant">GL_SRGB</code>,
                        the R, G, and B destination color values (after conversion from fixed-point to floating-point)
                        are considered to be encoded for the sRGB color space and hence are linearized prior to
                        their use in blending.
                    </p></dd><dt><span class="term"><code class="constant">GL_LINE_SMOOTH</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        draw lines with correct filtering.
                        Otherwise,
                        draw aliased lines.
                        See <a href="glLineWidth"><span class="citerefentry"><span class="refentrytitle">glLineWidth</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_MULTISAMPLE</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        use multiple fragment samples in computing the final color of a pixel.
                        See <a href="glSampleCoverage"><span class="citerefentry"><span class="refentrytitle">glSampleCoverage</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_POLYGON_OFFSET_FILL</code></span></dt><dd><p>
                </p><p>
                        If enabled, and if the polygon is rendered in
                        <code class="constant">GL_FILL</code> mode, an offset is added to depth values of a polygon's
                        fragments before the depth comparison is performed.
                        See <a href="glPolygonOffset"><span class="citerefentry"><span class="refentrytitle">glPolygonOffset</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_POLYGON_OFFSET_LINE</code></span></dt><dd><p>
                </p><p>
                        If enabled, and if the polygon is rendered in
                        <code class="constant">GL_LINE</code> mode, an offset is added to depth values of a polygon's
                        fragments before the depth comparison is performed.
                        See <a href="glPolygonOffset"><span class="citerefentry"><span class="refentrytitle">glPolygonOffset</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_POLYGON_OFFSET_POINT</code></span></dt><dd><p>
                </p><p>
                        If enabled, an offset is added to depth values of a polygon's fragments
                        before the depth comparison is performed, if the polygon is rendered in
                        <code class="constant">GL_POINT</code> mode. See <a href="glPolygonOffset"><span class="citerefentry"><span class="refentrytitle">glPolygonOffset</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_POLYGON_SMOOTH</code></span></dt><dd><p>
                </p><p>
                        If enabled, draw polygons with proper filtering.
                        Otherwise, draw aliased polygons. For correct antialiased polygons,
                        an alpha buffer is needed and the polygons must be sorted front to
                        back.
                    </p></dd><dt><span class="term"><code class="constant">GL_PRIMITIVE_RESTART</code></span></dt><dd><p>
                </p><p>
                        Enables primitive restarting.  If enabled, any one of the draw commands
                        which transfers a set of generic attribute array elements to the GL will restart
                        the primitive when the index of the vertex is equal to the primitive restart index.
                        See <a href="glPrimitiveRestartIndex"><span class="citerefentry"><span class="refentrytitle">glPrimitiveRestartIndex</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_SAMPLE_ALPHA_TO_COVERAGE</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        compute a temporary coverage value where each bit is determined by the
                        alpha value at the corresponding sample location.  The temporary coverage
                        value is then ANDed with the fragment coverage value.
                    </p></dd><dt><span class="term"><code class="constant">GL_SAMPLE_ALPHA_TO_ONE</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        each sample alpha value is replaced by the maximum representable alpha value.
                    </p></dd><dt><span class="term"><code class="constant">GL_SAMPLE_COVERAGE</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        the fragment's coverage is ANDed with the temporary coverage value.  If
                        <code class="constant">GL_SAMPLE_COVERAGE_INVERT</code> is set to <code class="constant">GL_TRUE</code>, invert the coverage
                        value.
                        See <a href="glSampleCoverage"><span class="citerefentry"><span class="refentrytitle">glSampleCoverage</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_SCISSOR_TEST</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        discard fragments that are outside the scissor rectangle.
                        See <a href="glScissor"><span class="citerefentry"><span class="refentrytitle">glScissor</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_STENCIL_TEST</code></span></dt><dd><p>
                </p><p>
                        If enabled,
                        do stencil testing and update the stencil buffer.
                        See <a href="glStencilFunc"><span class="citerefentry"><span class="refentrytitle">glStencilFunc</span></span></a> and <a href="glStencilOp"><span class="citerefentry"><span class="refentrytitle">glStencilOp</span></span></a>.
                    </p></dd><dt><span class="term"><code class="constant">GL_TEXTURE_CUBE_MAP_SEAMLESS</code></span></dt><dd><p>
                </p><p>
                        If enabled, modifies the way sampling is performed on cube map textures.  See the spec for more information.
                    </p></dd><dt><span class="term"><code class="constant">GL_PROGRAM_POINT_SIZE</code></span></dt><dd><p>
                </p><p>
                        If enabled
                        and a vertex or geometry shader is active, then the derived point size is taken from the (potentially clipped) shader builtin
                        <code class="constant">gl_PointSize</code> and clamped to the implementation-dependent point size range.
                    </p></dd></dl></div></div><div class="refsect1" lang="en" xml:lang="en"><a id="errors"></a><h2>Errors</h2><p>
            <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>cap</code></em> is not one of the values
            listed previously.
        </p><p>
            <code class="constant">GL_INVALID_VALUE</code> is generated by <code class="function">glEnablei</code> and <code class="function">glDisablei</code>
            if <em class="parameter"><code>index</code></em> is greater than or equal to the number of indexed capabilities for <em class="parameter"><code>cap</code></em>.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="notes"></a><h2>Notes</h2><p>
            <code class="constant">GL_PRIMITIVE_RESTART</code> is available only if the GL version is 3.1 or greater.
        </p><p>
            <code class="constant">GL_TEXTURE_CUBE_MAP_SEAMLESS</code> is available only if the GL version is 3.2 or greater.
        </p><p>
            Any token accepted by <code class="function">glEnable</code> or <code class="function">glDisable</code> is also accepted by
            <code class="function">glEnablei</code> and <code class="function">glDisablei</code>, but if the capability is not indexed,
            the maximum value that <em class="parameter"><code>index</code></em> may take is zero.
        </p><p>
            In general, passing an indexed capability to <code class="function">glEnable</code> or <code class="function">glDisable</code>
            will enable or disable that capability for all indices, resepectively.
        </p></div><div class="refsect1" lang="en" xml:lang="en"><a id="associatedgets"></a><h2>Associated Gets</h2><p>
            <a href="glIsEnabled"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a>
        </p><p>
            <a href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>
        </p></div>
        {$pipelinestall}{$examples}
        <div class="refsect1" lang="en" xml:lang="en"><a id="seealso"></a><h2>See Also</h2><p>
            <a href="glActiveTexture"><span class="citerefentry"><span class="refentrytitle">glActiveTexture</span></span></a>,
            <a href="glBlendFunc"><span class="citerefentry"><span class="refentrytitle">glBlendFunc</span></span></a>,
            <a href="glCullFace"><span class="citerefentry"><span class="refentrytitle">glCullFace</span></span></a>,
            <a href="glDepthFunc"><span class="citerefentry"><span class="refentrytitle">glDepthFunc</span></span></a>,
            <a href="glDepthRange"><span class="citerefentry"><span class="refentrytitle">glDepthRange</span></span></a>,
            <a href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>,
            <a href="glIsEnabled"><span class="citerefentry"><span class="refentrytitle">glIsEnabled</span></span></a>,
            <a href="glLineWidth"><span class="citerefentry"><span class="refentrytitle">glLineWidth</span></span></a>,
            <a href="glLogicOp"><span class="citerefentry"><span class="refentrytitle">glLogicOp</span></span></a>,
            <a href="glPointSize"><span class="citerefentry"><span class="refentrytitle">glPointSize</span></span></a>,
            <a href="glPolygonMode"><span class="citerefentry"><span class="refentrytitle">glPolygonMode</span></span></a>,
            <a href="glPolygonOffset"><span class="citerefentry"><span class="refentrytitle">glPolygonOffset</span></span></a>,
            <a href="glSampleCoverage"><span class="citerefentry"><span class="refentrytitle">glSampleCoverage</span></span></a>,
            <a href="glScissor"><span class="citerefentry"><span class="refentrytitle">glScissor</span></span></a>,
            <a href="glStencilFunc"><span class="citerefentry"><span class="refentrytitle">glStencilFunc</span></span></a>,
            <a href="glStencilOp"><span class="citerefentry"><span class="refentrytitle">glStencilOp</span></span></a>,
            <a href="glTexImage1D"><span class="citerefentry"><span class="refentrytitle">glTexImage1D</span></span></a>,
            <a href="glTexImage2D"><span class="citerefentry"><span class="refentrytitle">glTexImage2D</span></span></a>,
            <a href="glTexImage3D"><span class="citerefentry"><span class="refentrytitle">glTexImage3D</span></span></a>
        </p></div><div class="refsect1" lang="en" xml:lang="en"><div id="Copyright"><h2>Copyright</h2><p>
            Copyright © 1991-2006
            Silicon Graphics, Inc. Copyright © 2010 Khronos Group.
            This document is licensed under the SGI
            Free Software B License. For details, see
            <a href="http://oss.sgi.com/projects/FreeB/" target="_top">http://oss.sgi.com/projects/FreeB/</a>.
        </p></div></div></div>
